import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);

// 声明变量  设置全局访问的变量对象
const state = {
  // 设置初始值
  isHome: true,//  是否是首页
  activeIndex: '1',// 当前页面
  aboutUsActiveIndex:'1',// 关于我们当前页面
}

// 监听值的变化
const getters = { //  实时监听state的值的变化（最新状态）
  isHomeF(state) { // 方法名随意，主要来承载变化的isHome的值
    // console.log(Number(sessionStorage.getItem('isHome')))
    if(sessionStorage.getItem('isHome') === '0'){
      state.isHome = false
    }else{
      state.isHome = true
    }
    // console.log(state.isHome)
    return state.isHome
  },
  activeIndexF(state){
    // console.log(typeof sessionStorage.getItem('activeIndex'))
    if(sessionStorage.getItem('activeIndex')){
      state.activeIndex = sessionStorage.getItem('activeIndex')
    }else{
      state.activeIndex = '1'
    }
    return state.activeIndex
  },
  activeIndexU(state){
    if(sessionStorage.getItem('aboutUsActiveIndex')){
      state.aboutUsActiveIndex = sessionStorage.getItem('aboutUsActiveIndex')
    }else{
      state.aboutUsActiveIndex = '1'
    }
    return state.aboutUsActiveIndex
  }
}

// 改变值的方法
const mutations = {
  homeShow(state){ // 名字随意，自定义改变state初始值的方法，参数除state可自定义添加多个
    sessionStorage.setItem('isHome', 1)
    state.isHome = true;
  },
  homeHide(state){ // 同上
    sessionStorage.setItem('isHome', 0)
    state.isHome = false;
  },
  changeActiveIndex(state, activeIndex){
    sessionStorage.setItem('activeIndex', activeIndex)
    state.activeIndex = activeIndex
  },
  changeAboutUsActiveIndex(state, aboutUsActiveIndex){
    sessionStorage.setItem('aboutUsActiveIndex', aboutUsActiveIndex)
    state.aboutUsActiveIndex = aboutUsActiveIndex
  }
}

// 触发方法
const actions = {
  // 名字随意，自定义触发mutations里函数的方法，
  // context与store 实例具有相同的方法和属性
  // 对应mutations可以添加多个额外参数
  showNavHome(context){
    context.commit('homeShow')
  },
  hideNavHome(context){
    context.commit('homeHide')
  },
  changeActiveIndexY(context,activeIndex){
    context.commit('changeActiveIndex',activeIndex)
  },
  changeAboutUsActiveIndexF(context,aboutUsActiveIndex){
    context.commit('changeAboutUsActiveIndex',aboutUsActiveIndex)
  }
}

const store = new Vuex.Store({
  state,
  getters,
  mutations,
  actions
});

export default store;
